A "small address" is herein defined to use any of the common address sizes of 16, 20, 24, 31 or 32 bits. A "large address" is herein defined to have a size of greater than the small address size being used. Many existing programs use small-size virtual addresses, which are translated into small real or absolute addresses. The translated real or absolute addresses are used to access the memory.
Previously-designed hosts (hypervisors) could not access any location in a large memory requiring an address size greater than the size used by the host. Prior types of hosts and their guests (operating systems, OSs) were each designed to use small size addresses (e.g. 31 bit addresses which can only address upto a 2**31 byte size memory). The OSs were each assigned to different zones in the memory of a computer system. The size of each zone was a fraction of the memory size. A host (hypervisor) supervised the OSs and had to be able to address any location in every guest's zone.
Small addresses are used in a prior logically-partitioned system disclosed in U.S. Pat. No. 4,843,541 to Bean et al, which is assigned to the same assignee as the subject invention. In that system, guests are located in different memory zones, and each guest is an operating system (OS) such as a copy of the IBM MVS (multiple virtual storage) or VM (virtual machine) operating system. The host is a hypervisor program (like VM) which supervises all guest operating systems in the different partitions of the system. The zones are different contiguous areas in system main storage respectively assigned to the different logical partitions configured from all of the resources of a system, called a Central Electronic Complex (CEC). The guest and the host each use a 31-bit small address size. All presently known hypervisors for controlling logically partitioned systems can only handle small addresses. No windows are known to be used in such systems.
"Windows" have been previously used by personal computers (PCs), in which a window is located in four unused 16 KiloByte areas in the lowest 1 megabyte (MB) of storage used by the PC DOS software operating system. Using a window, 16 KB pages of data were transferred between the lowest 1 MB of memory and extended memory addresses greater than 1 MB, upto the maximum extended address of 2**24-1. Such windows enabled a PC to use a memory size up to 16 MB. An example of such prior art is U.S. Pat. No. 4,943,910 to N. Nakamura.
Large memory addresses were previously disclosed in patent application Ser. No. 07/816911 filed Jan. 3, 1992 entitled "Guest/Host Large Addressing Method and Means". This application provides address translation of a guest's small or large address into a large absolute address, assigned to the same assignee as the subject application. It does not use windows for addressing.
Another patent application dealing with large addresses is Ser. No. 07/803320 filed Dec. 6, 1991 entitled "Large Logical Addressing Method and Means", assigned to the same assignee as the subject application. This application uses guest small addresses to generate large addresses for addressing a large memory. It does not use windows for addressing.